package com.ray.mapper;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.ibatis.annotations.Param;

import com.ray.bean.CompanyMaterialTableBean;
import com.ray.bean.FeedingAndReportBean;
import com.ray.bean.ProcessBean;
import com.ray.pojo.ApplyRepairMoneyPojo;
import com.ray.pojo.FeedOrderDetailPojo;
import com.ray.pojo.MaterialSelectFilterPojo;
import com.ray.pojo.OrderCostGlassesPojo;

/**
 * 订单眼镜成本Mapper
* <p>Title: OrderCostGlassesMapper</p>  
* <p>Description: </p>  
* @author 李斌  
* @date 2018年8月6日
 */
public interface OrderCostGlassesMapper {
	
	
	/**
	 * 获取投料单明细数据
	* @date 2018年8月6日 下午3:34:30 
	* @author 李斌
	* @return List<FeedOrderDetailPojo> 
	* @throws
	 */
	List<FeedOrderDetailPojo> getAllFeedOrderDetail(Map<String, Object> map);
	
	/**
	 * 获取订单编号list
	* @date 2018年8月8日 下午1:18:42 
	* @author 李斌
	* @return List<String> 
	* @throws
	 */
	List<MaterialSelectFilterPojo> getOrderIdList(Map<String, Object> map);

	/**
	 * 获取公司月管理成本数据( 月工资总和  月产能总和)
	 * @param loginCompany
	 * @return
	 */
	FeedingAndReportBean getCompanyManagerData(@Param("loginCompany")String loginCompany);

	/**
	 * 获取人工成本数据(工序价格，计价单位，行号)
	 * @param paramList
	 * @return
	 */
	List<ProcessBean> getPeopleGlassesData(@Param("orderIdList")Set<String> orderIdList);

	/**
	 * 获取订单工艺数工序
	 * @param orderIdSet
	 * @return
	 */
	List<ProcessBean> getOrderTreeProcessByOrderList(@Param("orderIdList")Set<String> orderIdSet);

	/**
	 * 获取订单设置的工序
	 * @param orderIdSet
	 * @return
	 */
	List<ProcessBean> getOrderSetProcessByOrderList(@Param("orderIdList")Set<String> orderIdSet);
	
	/**
	 * 获取个人申补成本
	 * @param startDate
	 * @param endDate
	 * @param userId
	 * @param companyName
	 * @return
	 */
	List<ApplyRepairMoneyPojo> getApplyRepairOrderMoney(@Param("startDate")String startDate, @Param("endDate")String endDate, @Param("userId")Integer userId, @Param("companyName")String companyName);

	/**
	 * 获取设备订单成本
	 * @param map
	 * @return
	 */
	List<OrderCostGlassesPojo> getMachineCostGlasses(Map<String, Object> map);
	int getMachineCostGlassesCount(Map<String, Object> map);

	/**
	 * 获取设备订单的订单明细
	 * @param list
	 * @return
	 */
	List<CompanyMaterialTableBean> getMachingOrderDetail(@Param("list")List<OrderCostGlassesPojo> list);

	/**
	 * 获取当月设备生产完成台数
	 * @param paramMap
	 * @return
	 */
	Integer getMonthFinishMachingCount(Map paramMap);
	
	

}
